﻿// ----------------------------------------------------------------------------------
// Microsoft Developer & Platform Evangelism
// 
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, 
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES 
// OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
// ----------------------------------------------------------------------------------
// The example companies, organizations, products, domain names,
// e-mail addresses, logos, people, places, and events depicted
// herein are fictitious.  No association with any real company,
// organization, product, domain name, email address, logo, person,
// places, or events is intended or should be inferred.
// ----------------------------------------------------------------------------------

namespace umbraco
{
    using System;
    using System.Linq;
    using System.Web.Configuration;
    using System.Web.Security;
    using umbraco.ACSExtensions;
    using System.Web.UI.WebControls;

    public partial class ViewBusinessIdentityProviders : BasePages.UmbracoEnsuredPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.Page.IsPostBack)
            {
                this.MainPanel.Text = "Business Identity Providers";
                this.NoManagementKeyPanel.Visible = false;
                this.NoMemberGroupPanel.Visible = false;
                this.NoIdentityProviderPanel.Visible = false;
                this.BusinessIdentityProvidersPanel.Visible = false;

                if (!ACSExtensionsSettings.EnabledProgrammaticAccessToAcs)
                {
                    this.NoManagementKeyPanel.Visible = true;
                }
                else
                {
                    var acsManagementService = new AcsManagementService();
                    var identityProviders = acsManagementService.RetrieveBusinessIdentityProviders();

                    if (identityProviders.Count() == 0)
                    {
                        this.NoIdentityProviderPanel.Visible = true;
                    }
                    else
                    {
                        this.IdentityProvidersRepeater.DataSource = identityProviders;
                        this.IdentityProvidersRepeater.DataBind();
                        this.BusinessIdentityProvidersPanel.Visible = true;
                    }
                }

                if (Roles.GetAllRoles().Length == 0)
                {
                    this.NoMemberGroupPanel.Visible = true;
                }

                this.WarningsPanel.Visible =
                    this.NoManagementKeyPanel.Visible ||
                    this.NoMemberGroupPanel.Visible ||
                    this.NoIdentityProviderPanel.Visible;
            }
        }
    }
}